#include<bits/stdc++.h>
#define ll long long
#define P 1000000007
#define N 100005

inline int fmo(int x){
	return x+((x>>31)&P);
}
inline int fp(int x,ll k){
	int res=1;
	for(;k;k>>=1,x=1ll*x*x%P) if(k&1)
		res=1ll*res*x%P;
	return res;
}

int n,m,x;
char s[N];

int ans;

int main(){
	freopen("pearl.in","r",stdin);
	freopen("pearl.out","w",stdout);
	scanf("%d%d%d%s",&n,&m,&x,s);
	int o=-1;
	while(o+1<m&&s[o+1]=='0')
		o++;
	for(int i=m-1;~i;i--){
		int t;
		if(!(x&1)||!((n-x+1)&1))
			t=i<=o?fp(2,1ll*(n-n/2)*(i+1)):0;
		else
			t=fp(2,1ll*(n-n/2-1)*(i+1));
		ans=fmo(ans+1ll*fp(2,P-2)*fmo(fp(2,1ll*(n-1)*(i+1))-t)%P*fp(2,1ll*(n-1)*(m-1-i)+i)%P-P);
	}
	printf("%d\n",ans);
}
